<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Control extends CI_Controller {
	
	public function __construct()
	{
		parent::__construct();
		$this->load->model('control_model');
		$this->load->model('cursos_model');
		$this->load->model('inscripcion_model');
		$this->load->helper('url');
		$this->load->helper('form');
		$this->load->helper('inflector');
		$this->load->helper('email');
		session_start();
	}
	
	public function portada(){
		$data['titulo'] = 'Portada';
		$data['error']='';
		$this->load->view('controleade/cabecera', $data);
		if($this->session->userdata('usuario') || empty($this->session->userdata('usuario'))){
			$usua = $this->input->post('usuario', TRUE);
			$contra = $this->input->post('contrasena', TRUE);
			$validacion= array(
				'usua' => $usua,
				'contr' => $contra
			);
			$logins = $this->control_model->validarLogin($validacion);
			if(count($logins) > 0){
				foreach($logins as $login){
					$arrayusuario = array(
						'usuario' => $login['nombre'],
						'cargo'=> $login['cargo'],
						'activo' =>1
					);
					$this->session->set_userdata($arrayusuario);
					$data['nombreUsuario'] = $login['nombre'];
				}
				$this->load->view('controleade/menu',$data);
				$this->load->view('controleade/inicio', $data);
			}
			else{
				if(strlen($usua)>0){
					$data['error']='Usuario y contrasena incorrectos';
				}
				else{
					$data['error']='';
				}
				$this->load->view('controleade/portada', $data);
			}
		}
		else{
			$data['nombreUsuario'] = $this->session->userdata('usuario'); 
			$this->load->view('controleade/menu',$data);
			$this->load->view('controleade/inicio', $data);
		}
		$this->load->view('controleade/pie', $data);
	}
	
		
	public function miembros(){
		if($this->session->userdata('usuario')){
			$data['titulo'] = 'Miembros';
			$this->load->view('controleade/cabecera', $data);
			$this->load->view('controleade/miembros', $data);
		}
		else{
			$data['titulo'] = 'Portada';
			$data['error']='';
			$this->load->view('controleade/cabecera', $data);
			$this->load->view('controleade/portada', $data);
		}
		$this->load->view('controleade/pie', $data);
	}
	
	public function graficos($idcurso){
		if($this->session->userdata('usuario')){
			$cursos = $this->cursos_model->getCursoById($idcurso);
			foreach($cursos as $curso){
				$data['nombreCurso']=$curso['nombre'];
			}
			$data['titulo'] = 'Encuesta';
			$this->load->view('controleade/cabecera', $data);
			$this->load->view('controleade/menu',$data);
			$encuestas = $this->control_model->getEncuestas($idcurso);
			$tema=[0,0,0,0,0];
			$horario=[0,0,0,0,0];
			$ponentes=[0,0,0,0,0];
			$precio=[0,0,0,0,0];
			$organizacion=[0,0,0,0,0];
			$data['numopiniones']=count($encuestas);
			foreach($encuestas as $encuesta){
				$tema[$encuesta['tema']-1]+=1;
				$horario[$encuesta['horario']-1]+=1;
				$ponentes[$encuesta['ponentes']-1]+=1;
				$precio[$encuesta['precio']-1]+=1;
				$organizacion[$encuesta['organizacion']-1]+=1;
				if(strcmp($encuesta['observaciones'],"")!==0){
					$comentarios[]=$encuesta['observaciones'];
				}
			}
			$data['idcurso']=$idcurso;
			$data['temas'] = $tema;
			$data['horario'] = $horario;
			$data['transmitido'] = $ponentes;
			$data['precio'] = $precio;
			$data['organizacion'] = $organizacion;
			$data['comentarios'] = $comentarios;
			$data['ponentes'] = $this->control_model->getEncuestaPonentes($idcurso);
			$this->load->view('controleade/graficos', $data);
		}
		else{
			$data['titulo'] = 'Portada';
			$data['error']='';
			$this->load->view('controleade/cabecera', $data);
			$this->load->view('controleade/portada', $data);
		}
		$this->load->view('controleade/pie', $data);
	}
	
	public function fichaAlumno($idAlumno){
		if($this->session->userdata('usuario')){
			$data['titulo'] = 'fichaAlumno';
			$data['idalumno']=$idAlumno;
			$data['error']='';
			$data['cargo']=$this->session->userdata('cargo');
			$this->load->view('controleade/cabecera', $data);
			if($this->input->post('dni')){
				$entrada = $this->input->post();
				$datosAlumno = array(
					'nombre' => $entrada['nombre'], 
					'apellidos' => $entrada['apellidos'],  
					'telefono' => $entrada['telefono'],
					'dni' => $entrada['dni'],
					'email' => $entrada['email']
				);
				$encuestas = $this->control_model->updateAlumno($datosAlumno);
			}
			$alumnos = $this->control_model->getDatosAlumno($idAlumno);
			foreach($alumnos as $alumno){
				$data['alumno']=$alumno;
				$data['cursos']=$this->cursos_model->getCursosPorAlumno($alumno['dni']);
			}
			$this->load->view('controleade/fichaalumno', $data);
		}
		else{
			$data['titulo'] = 'Portada';
			$data['error']='';
			$this->load->view('controleade/cabecera', $data);
			$this->load->view('controleade/portada', $data);
		}
		$this->load->view('controleade/pie', $data);
	}
	
	/*
	Metodo encargado de generar la pantalla de email dependiendo de si es para General(todos), un curso o un alumno
	*/
	public function crearemail($codigo){
		if($this->session->userdata('usuario')){
			$cod = explode("_",$codigo);
			if(strcmp($cod[0],"general") === 0){
				$data['avisomen']="Este email va dirigido a todos los antiguos alumnos/as";
				$data['mensaje']="Email General";
			}
			else{
				if(strcmp($cod[0],"curso") === 0){
					$cursos=$this->cursos_model->getCursoById($cod[1]);
					foreach($cursos as $curso){
						$data['avisomen']="Este email va dirigido a todas las personas que estan inscritas en el ".$curso['nombre'];
						$data['mensaje']="Email para el ".$curso['nombre'];
					}
				}
				else{
					if(strcmp($cod[0],"alumno") === 0){
						$alumnos = $this->control_model->getDatosAlumno($cod[1]);
						foreach($alumnos as $alumno){
							$data['avisomen']="Este email va dirigido unicamente a ".$alumno['nombre'] . " ". $alumno['apellidos'];
							$data['mensaje']="Email para ".$alumno['nombre'] . " ". $alumno['apellidos'];
						}
					}
					else{
						show_error(404);
					}
				}
			}
			$data['codigo']=$codigo;
			$data['titulo'] = 'Enviar email';
			$data['error']='';
			$this->load->view('controleade/cabecera', $data);
			$this->load->view('controleade/creaemail', $data);
		}
		else{
			$data['titulo'] = 'Portada';
			$data['error']='';
			$this->load->view('controleade/cabecera', $data);
			$this->load->view('controleade/portada', $data);
		}
		$this->load->view('controleade/pie', $data);
	}
	
	/* 
	Metodo encargado de enviar el email dependiendo de si es para General(todos), un curso o un alumno
	*/
	public function enviamail($codigo){
		if($this->session->userdata('usuario')){
			$this->load->library('envio_email');
			$cod = explode("_",$codigo);
			if(strcmp($cod[0],"general") === 0){
				$alumnos = $this->control_model->getAlumnos();
				foreach($alumnos as $alumno){
					if (valid_email($alumno['email'])){
						$cuerpoemail = str_replace("##NOMBRE##", $alumno['nombre'], $this->input->post('elm1'));
						$email = array(
							'asunto' => $this->input->post('asunto'),
							'cuerpo' => $cuerpoemail,
							'destino' => $alumno['email']
						);
						$this->envio_email->enviarEmail($email);
					}
				}
				/* al finalizar de enviarlos todos, enviamos una copia a la junta de forma que validemos que se ha enviado correctamente*/
				$cuerpoemail = str_replace("##NOMBRE##", "Miembro de EADE", $this->input->post('elm1'));
				$email = array(
					'asunto' => $this->input->post('asunto'),
					'cuerpo' => $cuerpoemail,
					'destino' => "steb_brown@hotmail.com"
				);
				$this->envio_email->enviarEmail($email);
				$data['avisomen']="El email se ha enviado con exito";
				$data['mensaje']="Email General";
				$data['volver']=base_url('controleade');
			}
			else{
				if(strcmp($cod[0],"curso") === 0){
					$alumnos=$this->inscripcion_model->getInscritosACurso($cod[1]);
					foreach($alumnos as $alumno){
						if (valid_email($alumno['email'])){
							$cuerpoemail = str_replace("##NOMBRE##", $alumno['nombre'], $this->input->post('elm1'));
							$email = array(
								'asunto' => $this->input->post('asunto'),
								'cuerpo' => $cuerpoemail,
								'destino' => $alumno['email']
							);
							$this->envio_email->enviarEmail($email);
						}
					}	
					/* al finalizar de enviarlos todos, enviamos una copia a la junta de forma que validemos que se ha enviado correctamente*/
					$cuerpoemail = str_replace("##NOMBRE##", "Miembro de EADE", $this->input->post('elm1'));
					$email = array(
						'asunto' => $this->input->post('asunto'),
						'cuerpo' => $cuerpoemail,
						'destino' => "steb_brown@hotmail.com"
					);
					$this->envio_email->enviarEmail($email);
					$data['avisomen']="El email se ha enviado con exito a todos los miembros del curso";
					$data['mensaje']="Email enviado con exito";
					$data['volver']=base_url('controleade/fichacurso/'.$cod[1]);
				}
				else{
					if(strcmp($cod[0],"alumno") === 0){
						$alumnos = $this->control_model->getDatosAlumno($cod[1]);
						foreach($alumnos as $alumno){
							if (valid_email($alumno['email'])){
								$cuerpoemail = str_replace("##NOMBRE##", $alumno['nombre'], $this->input->post('elm1'));
								$email = array(
									'asunto' => $this->input->post('asunto'),
									'cuerpo' => $cuerpoemail,
									'destino' => $alumno['email']
								);
								$this->envio_email->enviarEmail($email);
								$data['avisomen']="El email para ".$alumno['nombre'] . " ". $alumno['apellidos'] . " ha sido enviado eon exito";
								$data['mensaje']="Email enviado con exito";
							}
							else{
								$data['avisomen']="El email es incorrecto revisar ficha del alumno/a ".$alumno['nombre'] . " ". $alumno['apellidos'];
								$data['mensaje']="ERROR al enviar el email";
							}
						}
						$data['volver']=base_url('controleade/fichaalumno/'.$cod[1]);
					}
					else{
						show_error(404);
					}
				}
			}
			$data['codigo']=$codigo;
			$data['titulo'] = 'Enviar email';
			$data['error']='';
			$this->load->view('controleade/cabecera', $data);
			$this->load->view('controleade/emailenviado', $data);
		}
		else{
			$data['titulo'] = 'Portada';
			$data['error']='';
			$this->load->view('controleade/cabecera', $data);
			$this->load->view('controleade/portada', $data);
		}
		$this->load->view('controleade/pie', $data);
	}
	
	
	/*
	Metodo encargado de generar listas imprimibles de los cursos
	*/
	
	public function imprimirlista($idcurso){
		if($this->session->userdata('usuario')){
			$data['cursos']=$this->cursos_model->getCursoById($idcurso);
			$data['alumnos']=$this->inscripcion_model->getListaControl($idcurso);
			$data['idcurso']=$idcurso;
			$data['titulo'] = 'Listado curso';
			$data['error']='';
			$this->load->view('controleade/cabecera', $data);
			$this->load->view('controleade/listacontrol', $data);
		}
		else{
			$data['titulo'] = 'Portada';
			$data['error']='';
			$this->load->view('controleade/cabecera', $data);
			$this->load->view('controleade/portada', $data);
		}
		$this->load->view('controleade/pie', $data);
	
	}
}
